/*
 * consumo.cpp
 *
 *  Created on: 20/09/2011
 *      Author: guido
 */

#include "consumo.h"

Consumo::Consumo() {}

void Consumo::serializar(char* &bytes, int &tamanyo) {
	tamanyo = this->serialSize();
	bytes = new char[tamanyo];
	Serializador serializador;
	strncpy(bytes, &CONSUMO, 1);
	// Asigno 1 a indice para no tomar el caracter identificador
	int indice = 1;
	serializador.serializarInteger(bytes, this->habitacion, indice);
	serializador.serializarInteger(bytes, this->monto, indice);
}

int Consumo::serialSize() {
	return ( sizeof(CONSUMO) + WORD_SIZE*2 );
}

void Consumo::deserializar(char *bytes) {
	Serializador serializador;
	// Asigno 1 a indice para no tomar el caracter identificador
	int indice = 1;
	this->habitacion = serializador.deserializarInteger(bytes, indice);
	this->monto = serializador.deserializarInteger(bytes, indice);
}

void Consumo::deserializar(std::string entrada) {
	// Borro el caracter de identidad de objeto y el separador
	entrada.erase(0, 2);
	std::string temp = siguienteCampo(entrada);
	this->habitacion = atoi(temp.c_str());
	temp = entrada;
	this->monto = atoi(temp.c_str());
}

int Consumo::getMonto() {
    return monto;
}

int Consumo::getNumero() {
	return (this->habitacion);
}

void Consumo::responder(TerminalesServer &server) {
	server.responderConsumo(this);
}
